package main;

import main.Communication.Server;

/**
 * 主机处理，本机处理
 * 
 * @func 负责牌的分配，回合的调度，相关信息的转送
 * @author svitter
 *
 */

public class NetGame_Host extends Server{

	private Controler_board 		 boardct;
	private Controler_player 	 playct;
 
	public int                  curUserID;         	/** 当前操作玩家的编号 */
	public int                  joined_userNum;     /** 当前玩家的人数 */
	public int                  sum_userNum;      /** 玩家的总人数 */
	

	/**
	 * 主机优先，胜者优先
	 * @param whole_userNum
	 */
	public NetGame_Host(int whole_userNum) {
		// super(whole_userNum);
		this.sum_userNum = whole_userNum;
		joined_userNum = 0;

		reset();
		// Menu.cout("DEBUG: finish buildhost");
	}

	/**
	 * 重新开始游戏，重置所有数据
	 */
	public void reset() {
		//重置服务器牌

		setcurUserID(0);

		for (int i = 0; i < curUserID; i++) {
			// userGroup[i].lose = false;
        }

		startGame();
	}

	/**
	 * 人数到齐后，开始游戏
	 */
	public void startGame() {

	}

	/**
	 * 分配牌给玩家
	 */
	public void allocateBoard() {
		//TODO 分配牌
	}

	/** 循环进行游戏，下一个玩家 */
	public void nextUser() {
		this.curUserID++;
		if (curUserID>= sum_userNum) {
			curUserID %= sum_userNum;
        }
	}

	/** TODO 加入新的玩家 */
	public int joined_userNum() {
		return joined_userNum;
	}

	/** 加入新的玩家，并且返回新玩家的玩家编号 */
	public int new_joinUser() {
		return joined_userNum++;
	}

	/** 现在是谁的Turn */
	 public int whosNow() {
		 return this.curUserID;
	 }

	/** 决定谁先进行游戏 */
	public void setcurUserID(int curUserID) {
		this.curUserID = curUserID;
	}


}
